package com.heima.datastructure.stack;

/**
 * 栈的接口
 * @param <E>
 */
public interface Stack<E> {

    /**
     * 向栈顶压入元素
     * @param value 带压入值
     * @return 压入成功返回true，否则false
     */
    boolean push(E value);

    /**
     * 从栈顶弹出元素，如果栈为空，返回null
     * @return 弹出元素值
     */
    E pop();

    /**
     * 返回栈顶元素的值，不弹出
     * @return 弹出元素的值
     */
    E peek();

    /**
     * 判断栈是否为空
     * @return 栈为空返回true，否则false
     */
    boolean isEmpty();

    /**
     * 判断栈是否为满
     * @return 栈为满返回true，否则false
     */
    boolean isFull();
}
